<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>OpenMesh: OpenMesh::VectorT&lt; Scalar, DIM &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="logo_align.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="rwth_vci_rgb.jpg"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">OpenMesh
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('a02001.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#related">Related Functions</a> &#124;
<a href="a01998.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">OpenMesh::VectorT&lt; Scalar, DIM &gt; Class Template Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:aab637709c0a6301721542fe2efefa707"><td class="memItemLeft" align="right" valign="top"><a id="aab637709c0a6301721542fe2efefa707"></a>
typedef Scalar&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#aab637709c0a6301721542fe2efefa707">value_type</a></td></tr>
<tr class="memdesc:aab637709c0a6301721542fe2efefa707"><td class="mdescLeft">&#160;</td><td class="mdescRight">the type of the scalar used in this template <br /></td></tr>
<tr class="separator:aab637709c0a6301721542fe2efefa707"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a280f7d4c1fb79f41df9254c2e2f654f2"><td class="memItemLeft" align="right" valign="top"><a id="a280f7d4c1fb79f41df9254c2e2f654f2"></a>
typedef <a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#a280f7d4c1fb79f41df9254c2e2f654f2">vector_type</a></td></tr>
<tr class="memdesc:a280f7d4c1fb79f41df9254c2e2f654f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">type of this vector <br /></td></tr>
<tr class="separator:a280f7d4c1fb79f41df9254c2e2f654f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ad2ee581627b2a236e79c06576cdd6c19"><td class="memTemplParams" colspan="2"><a id="ad2ee581627b2a236e79c06576cdd6c19"></a>
template&lt;typename T , typename ... Ts, typename  = typename std::enable_if&lt;sizeof...(Ts)+1 == DIM&gt;::type, typename  = typename std::enable_if&lt;                are_convertible_to&lt;Scalar, T, Ts...&gt;::value&gt;::type&gt; </td></tr>
<tr class="memitem:ad2ee581627b2a236e79c06576cdd6c19"><td class="memTemplItemLeft" align="right" valign="top">constexpr&#160;</td><td class="memTemplItemRight" valign="bottom"><b>VectorT</b> (T v, Ts... vs)</td></tr>
<tr class="separator:ad2ee581627b2a236e79c06576cdd6c19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3aeb6b5ff982b618580a1dd0930dd57"><td class="memItemLeft" align="right" valign="top"><a id="ac3aeb6b5ff982b618580a1dd0930dd57"></a>
constexpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#ac3aeb6b5ff982b618580a1dd0930dd57">VectorT</a> ()</td></tr>
<tr class="memdesc:ac3aeb6b5ff982b618580a1dd0930dd57"><td class="mdescLeft">&#160;</td><td class="mdescRight">default constructor creates uninitialized values. <br /></td></tr>
<tr class="separator:ac3aeb6b5ff982b618580a1dd0930dd57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93de2681df0317ba60e0c2e61ad97431"><td class="memItemLeft" align="right" valign="top"><a id="a93de2681df0317ba60e0c2e61ad97431"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#a93de2681df0317ba60e0c2e61ad97431">VectorT</a> (const Scalar &amp;v)</td></tr>
<tr class="memdesc:a93de2681df0317ba60e0c2e61ad97431"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a vector with all components set to v. <br /></td></tr>
<tr class="separator:a93de2681df0317ba60e0c2e61ad97431"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77b4961aaae1c0da76b12a1b79228fff"><td class="memItemLeft" align="right" valign="top"><a id="a77b4961aaae1c0da76b12a1b79228fff"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>VectorT</b> (const <a class="el" href="a02001.html">VectorT</a> &amp;rhs)=default</td></tr>
<tr class="separator:a77b4961aaae1c0da76b12a1b79228fff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8796705a1480a6b5b0d09e3773b1c56f"><td class="memItemLeft" align="right" valign="top"><a id="a8796705a1480a6b5b0d09e3773b1c56f"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>VectorT</b> (<a class="el" href="a02001.html">VectorT</a> &amp;&amp;rhs)=default</td></tr>
<tr class="separator:a8796705a1480a6b5b0d09e3773b1c56f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a787468375a851fbb5387c0e35222d331"><td class="memItemLeft" align="right" valign="top"><a id="a787468375a851fbb5387c0e35222d331"></a>
<a class="el" href="a02001.html">VectorT</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="a02001.html">VectorT</a> &amp;rhs)=default</td></tr>
<tr class="separator:a787468375a851fbb5387c0e35222d331"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54d37233c553b08f0bb41a35e66e011d"><td class="memItemLeft" align="right" valign="top"><a id="a54d37233c553b08f0bb41a35e66e011d"></a>
<a class="el" href="a02001.html">VectorT</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="a02001.html">VectorT</a> &amp;&amp;rhs)=default</td></tr>
<tr class="separator:a54d37233c553b08f0bb41a35e66e011d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b2e63efdbfe799e9ae4c39e95369105"><td class="memTemplParams" colspan="2"><a id="a2b2e63efdbfe799e9ae4c39e95369105"></a>
template&lt;typename S  = Scalar, int D = DIM&gt; </td></tr>
<tr class="memitem:a2b2e63efdbfe799e9ae4c39e95369105"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a2b2e63efdbfe799e9ae4c39e95369105">homogenized</a> () const -&gt; typename std::enable_if&lt; D==4, <a class="el" href="a02001.html">VectorT</a>&lt; decltype(std::declval&lt; S &gt;()/std::declval&lt; S &gt;()), DIM &gt;&gt;::type</td></tr>
<tr class="memdesc:a2b2e63efdbfe799e9ae4c39e95369105"><td class="mdescLeft">&#160;</td><td class="mdescRight">Only for 4-component vectors with division operator on their Scalar: Dehomogenization. <br /></td></tr>
<tr class="separator:a2b2e63efdbfe799e9ae4c39e95369105"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a082fb9a25a170764fb1c1006bb17a83c"><td class="memTemplParams" colspan="2"><a id="a082fb9a25a170764fb1c1006bb17a83c"></a>
template&lt;typename Iterator , typename  = decltype(                    *std::declval&lt;Iterator&amp;&gt;(), void(),                    ++std::declval&lt;Iterator&amp;&gt;(), void())&gt; </td></tr>
<tr class="memitem:a082fb9a25a170764fb1c1006bb17a83c"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a082fb9a25a170764fb1c1006bb17a83c">VectorT</a> (Iterator it)</td></tr>
<tr class="memdesc:a082fb9a25a170764fb1c1006bb17a83c"><td class="mdescLeft">&#160;</td><td class="mdescRight">construct from a value array or any other iterator <br /></td></tr>
<tr class="separator:a082fb9a25a170764fb1c1006bb17a83c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afac9d7bbb91381b24383e98ba874e63b"><td class="memItemLeft" align="right" valign="top"><a id="afac9d7bbb91381b24383e98ba874e63b"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#afac9d7bbb91381b24383e98ba874e63b">VectorT</a> (container &amp;&amp;_array)</td></tr>
<tr class="memdesc:afac9d7bbb91381b24383e98ba874e63b"><td class="mdescLeft">&#160;</td><td class="mdescRight">construct from an array <br /></td></tr>
<tr class="separator:afac9d7bbb91381b24383e98ba874e63b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaee48cf7d8c8847ef78e41fe2c8bf3a4"><td class="memTemplParams" colspan="2"><a id="aaee48cf7d8c8847ef78e41fe2c8bf3a4"></a>
template&lt;typename otherScalarType , typename  = typename std::enable_if&lt;                std::is_convertible&lt;otherScalarType, Scalar&gt;::value&gt;&gt; </td></tr>
<tr class="memitem:aaee48cf7d8c8847ef78e41fe2c8bf3a4"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#aaee48cf7d8c8847ef78e41fe2c8bf3a4">VectorT</a> (const <a class="el" href="a02001.html">VectorT</a>&lt; otherScalarType, DIM &gt; &amp;_rhs)</td></tr>
<tr class="memdesc:aaee48cf7d8c8847ef78e41fe2c8bf3a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">copy &amp; cast constructor (explicit) <br /></td></tr>
<tr class="separator:aaee48cf7d8c8847ef78e41fe2c8bf3a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd5a6eddc33be48b96bdced33b075d64"><td class="memTemplParams" colspan="2"><a id="acd5a6eddc33be48b96bdced33b075d64"></a>
template&lt;typename OtherScalar , typename  = typename std::enable_if&lt;                std::is_convertible&lt;OtherScalar, Scalar&gt;::value&gt;&gt; </td></tr>
<tr class="memitem:acd5a6eddc33be48b96bdced33b075d64"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a02001.html#a280f7d4c1fb79f41df9254c2e2f654f2">vector_type</a> &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#acd5a6eddc33be48b96bdced33b075d64">operator=</a> (const <a class="el" href="a02001.html">VectorT</a>&lt; OtherScalar, DIM &gt; &amp;_rhs)</td></tr>
<tr class="memdesc:acd5a6eddc33be48b96bdced33b075d64"><td class="mdescLeft">&#160;</td><td class="mdescRight">cast from vector with a different scalar type <br /></td></tr>
<tr class="separator:acd5a6eddc33be48b96bdced33b075d64"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca8bfed75a3c6a1d7cf6025196c244aa"><td class="memItemLeft" align="right" valign="top"><a id="aca8bfed75a3c6a1d7cf6025196c244aa"></a>
Scalar *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#aca8bfed75a3c6a1d7cf6025196c244aa">data</a> ()</td></tr>
<tr class="memdesc:aca8bfed75a3c6a1d7cf6025196c244aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">access to Scalar array <br /></td></tr>
<tr class="separator:aca8bfed75a3c6a1d7cf6025196c244aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae289cb229d83a249b1fcca817b346ba2"><td class="memItemLeft" align="right" valign="top"><a id="ae289cb229d83a249b1fcca817b346ba2"></a>
const Scalar *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#ae289cb229d83a249b1fcca817b346ba2">data</a> () const</td></tr>
<tr class="memdesc:ae289cb229d83a249b1fcca817b346ba2"><td class="mdescLeft">&#160;</td><td class="mdescRight">access to const Scalar array <br /></td></tr>
<tr class="separator:ae289cb229d83a249b1fcca817b346ba2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7efcbb89fff07da4db3f98a8107e045"><td class="memItemLeft" align="right" valign="top"><a id="ae7efcbb89fff07da4db3f98a8107e045"></a>
Scalar &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#ae7efcbb89fff07da4db3f98a8107e045">operator[]</a> (size_t _i)</td></tr>
<tr class="memdesc:ae7efcbb89fff07da4db3f98a8107e045"><td class="mdescLeft">&#160;</td><td class="mdescRight">get i'th element read-write <br /></td></tr>
<tr class="separator:ae7efcbb89fff07da4db3f98a8107e045"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e6c8be013f3d12b5e438ea4c2d43954"><td class="memItemLeft" align="right" valign="top"><a id="a9e6c8be013f3d12b5e438ea4c2d43954"></a>
const Scalar &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#a9e6c8be013f3d12b5e438ea4c2d43954">operator[]</a> (size_t _i) const</td></tr>
<tr class="memdesc:a9e6c8be013f3d12b5e438ea4c2d43954"><td class="mdescLeft">&#160;</td><td class="mdescRight">get i'th element read-only <br /></td></tr>
<tr class="separator:a9e6c8be013f3d12b5e438ea4c2d43954"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9cf769cccc2bccb2af64e53fee553b6"><td class="memItemLeft" align="right" valign="top"><a id="ac9cf769cccc2bccb2af64e53fee553b6"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#ac9cf769cccc2bccb2af64e53fee553b6">operator==</a> (const <a class="el" href="a02001.html#a280f7d4c1fb79f41df9254c2e2f654f2">vector_type</a> &amp;_rhs) const</td></tr>
<tr class="memdesc:ac9cf769cccc2bccb2af64e53fee553b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">component-wise comparison <br /></td></tr>
<tr class="separator:ac9cf769cccc2bccb2af64e53fee553b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acdf96f71b48454b99825946faf9a205a"><td class="memItemLeft" align="right" valign="top"><a id="acdf96f71b48454b99825946faf9a205a"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#acdf96f71b48454b99825946faf9a205a">operator!=</a> (const <a class="el" href="a02001.html#a280f7d4c1fb79f41df9254c2e2f654f2">vector_type</a> &amp;_rhs) const</td></tr>
<tr class="memdesc:acdf96f71b48454b99825946faf9a205a"><td class="mdescLeft">&#160;</td><td class="mdescRight">component-wise comparison <br /></td></tr>
<tr class="separator:acdf96f71b48454b99825946faf9a205a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a678f9d3807495235f3a72cfd2f50fa0a"><td class="memTemplParams" colspan="2"><a id="a678f9d3807495235f3a72cfd2f50fa0a"></a>
template&lt;typename OtherScalar &gt; </td></tr>
<tr class="memitem:a678f9d3807495235f3a72cfd2f50fa0a"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a678f9d3807495235f3a72cfd2f50fa0a">operator*=</a> (const OtherScalar &amp;_s) -&gt; typename std::enable_if&lt; std::is_convertible&lt; decltype(this-&gt;values_[0] *_s), Scalar &gt;::value, <a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;&gt;::type</td></tr>
<tr class="memdesc:a678f9d3807495235f3a72cfd2f50fa0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">component-wise self-multiplication with scalar <br /></td></tr>
<tr class="separator:a678f9d3807495235f3a72cfd2f50fa0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fe3a2b60f0dbbb261dbc1e30454ab7c"><td class="memTemplParams" colspan="2"><a id="a5fe3a2b60f0dbbb261dbc1e30454ab7c"></a>
template&lt;typename OtherScalar &gt; </td></tr>
<tr class="memitem:a5fe3a2b60f0dbbb261dbc1e30454ab7c"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a5fe3a2b60f0dbbb261dbc1e30454ab7c">operator/=</a> (const OtherScalar &amp;_s) -&gt; typename std::enable_if&lt; std::is_convertible&lt; decltype(this-&gt;values_[0]/_s), Scalar &gt;::value, <a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;&gt;::type</td></tr>
<tr class="memdesc:a5fe3a2b60f0dbbb261dbc1e30454ab7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">component-wise self-division by scalar <br /></td></tr>
<tr class="separator:a5fe3a2b60f0dbbb261dbc1e30454ab7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0857c64e2b74b253db9159a5f56f5b10"><td class="memTemplParams" colspan="2"><a id="a0857c64e2b74b253db9159a5f56f5b10"></a>
template&lt;typename OtherScalar &gt; </td></tr>
<tr class="memitem:a0857c64e2b74b253db9159a5f56f5b10"><td class="memTemplItemLeft" align="right" valign="top">std::enable_if&lt; std::is_convertible&lt; decltype(std::declval&lt; Scalar &gt;) *std::declval&lt; OtherScalar &gt;)), Scalar &gt;::value, <a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a0857c64e2b74b253db9159a5f56f5b10">operator*</a> (const OtherScalar &amp;_s) const</td></tr>
<tr class="memdesc:a0857c64e2b74b253db9159a5f56f5b10"><td class="mdescLeft">&#160;</td><td class="mdescRight">component-wise multiplication with scalar <br /></td></tr>
<tr class="separator:a0857c64e2b74b253db9159a5f56f5b10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1462ebad5a82853aba240f176c1553fc"><td class="memTemplParams" colspan="2"><a id="a1462ebad5a82853aba240f176c1553fc"></a>
template&lt;typename OtherScalar &gt; </td></tr>
<tr class="memitem:a1462ebad5a82853aba240f176c1553fc"><td class="memTemplItemLeft" align="right" valign="top">std::enable_if&lt; std::is_convertible&lt; decltype(std::declval&lt; Scalar &gt;)/std::declval&lt; OtherScalar &gt;)), Scalar &gt;::value, <a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a1462ebad5a82853aba240f176c1553fc">operator/</a> (const OtherScalar &amp;_s) const</td></tr>
<tr class="memdesc:a1462ebad5a82853aba240f176c1553fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">component-wise division by with scalar <br /></td></tr>
<tr class="separator:a1462ebad5a82853aba240f176c1553fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7347d6b13aa1e8f9e7324daf3ff926c4"><td class="memTemplParams" colspan="2"><a id="a7347d6b13aa1e8f9e7324daf3ff926c4"></a>
template&lt;typename OtherScalar &gt; </td></tr>
<tr class="memitem:a7347d6b13aa1e8f9e7324daf3ff926c4"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a7347d6b13aa1e8f9e7324daf3ff926c4">operator*=</a> (const <a class="el" href="a02001.html">VectorT</a>&lt; OtherScalar, DIM &gt; &amp;_rhs) -&gt; typename std::enable_if&lt; sizeof(decltype(this-&gt;values_[0] **_rhs.data())) &gt;=0</td></tr>
<tr class="memdesc:a7347d6b13aa1e8f9e7324daf3ff926c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">component-wise self-multiplication <br /></td></tr>
<tr class="separator:a7347d6b13aa1e8f9e7324daf3ff926c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f07a11026aba0ed35df32d419991534"><td class="memTemplParams" colspan="2"><a id="a7f07a11026aba0ed35df32d419991534"></a>
template&lt;typename OtherScalar &gt; </td></tr>
<tr class="memitem:a7f07a11026aba0ed35df32d419991534"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a7f07a11026aba0ed35df32d419991534">operator/=</a> (const <a class="el" href="a02001.html">VectorT</a>&lt; OtherScalar, DIM &gt; &amp;_rhs) -&gt; typename std::enable_if&lt; sizeof(decltype(this-&gt;values_[0]/*_rhs.data())) &gt;=0</td></tr>
<tr class="memdesc:a7f07a11026aba0ed35df32d419991534"><td class="mdescLeft">&#160;</td><td class="mdescRight">component-wise self-division <br /></td></tr>
<tr class="separator:a7f07a11026aba0ed35df32d419991534"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73021f2d56a2b57131706eeaba50152e"><td class="memTemplParams" colspan="2"><a id="a73021f2d56a2b57131706eeaba50152e"></a>
template&lt;typename OtherScalar &gt; </td></tr>
<tr class="memitem:a73021f2d56a2b57131706eeaba50152e"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a73021f2d56a2b57131706eeaba50152e">operator-=</a> (const <a class="el" href="a02001.html">VectorT</a>&lt; OtherScalar, DIM &gt; &amp;_rhs) -&gt; typename std::enable_if&lt; sizeof(decltype(this-&gt;values_[0] - *_rhs.data())) &gt;=0</td></tr>
<tr class="memdesc:a73021f2d56a2b57131706eeaba50152e"><td class="mdescLeft">&#160;</td><td class="mdescRight">vector difference from this <br /></td></tr>
<tr class="separator:a73021f2d56a2b57131706eeaba50152e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0e1b52920937d7df247755be88f6e96"><td class="memTemplParams" colspan="2"><a id="ac0e1b52920937d7df247755be88f6e96"></a>
template&lt;typename OtherScalar &gt; </td></tr>
<tr class="memitem:ac0e1b52920937d7df247755be88f6e96"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#ac0e1b52920937d7df247755be88f6e96">operator+=</a> (const <a class="el" href="a02001.html">VectorT</a>&lt; OtherScalar, DIM &gt; &amp;_rhs) -&gt; typename std::enable_if&lt; sizeof(decltype(this-&gt;values_[0]+ *_rhs.data())) &gt;=0</td></tr>
<tr class="memdesc:ac0e1b52920937d7df247755be88f6e96"><td class="mdescLeft">&#160;</td><td class="mdescRight">vector self-addition <br /></td></tr>
<tr class="separator:ac0e1b52920937d7df247755be88f6e96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f609d57f7ce07ba6787379be4f693aa"><td class="memTemplParams" colspan="2"><a id="a1f609d57f7ce07ba6787379be4f693aa"></a>
template&lt;typename OtherScalar &gt; </td></tr>
<tr class="memitem:a1f609d57f7ce07ba6787379be4f693aa"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a1f609d57f7ce07ba6787379be4f693aa">operator*</a> (const <a class="el" href="a02001.html">VectorT</a>&lt; OtherScalar, DIM &gt; &amp;_rhs) const -&gt; typename std::enable_if&lt; sizeof(decltype(this-&gt;values_[0] **_rhs.data())) &gt;=0</td></tr>
<tr class="memdesc:a1f609d57f7ce07ba6787379be4f693aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">component-wise vector multiplication <br /></td></tr>
<tr class="separator:a1f609d57f7ce07ba6787379be4f693aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99168b256b80b29208d9e3bcebc13d5f"><td class="memTemplParams" colspan="2"><a id="a99168b256b80b29208d9e3bcebc13d5f"></a>
template&lt;typename OtherScalar &gt; </td></tr>
<tr class="memitem:a99168b256b80b29208d9e3bcebc13d5f"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a99168b256b80b29208d9e3bcebc13d5f">operator/</a> (const <a class="el" href="a02001.html">VectorT</a>&lt; OtherScalar, DIM &gt; &amp;_rhs) const -&gt; typename std::enable_if&lt; sizeof(decltype(this-&gt;values_[0]/*_rhs.data())) &gt;=0</td></tr>
<tr class="memdesc:a99168b256b80b29208d9e3bcebc13d5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">component-wise vector division <br /></td></tr>
<tr class="separator:a99168b256b80b29208d9e3bcebc13d5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a221a8b6069cc543ebd2d129fb9ee36d2"><td class="memTemplParams" colspan="2"><a id="a221a8b6069cc543ebd2d129fb9ee36d2"></a>
template&lt;typename OtherScalar &gt; </td></tr>
<tr class="memitem:a221a8b6069cc543ebd2d129fb9ee36d2"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a221a8b6069cc543ebd2d129fb9ee36d2">operator+</a> (const <a class="el" href="a02001.html">VectorT</a>&lt; OtherScalar, DIM &gt; &amp;_rhs) const -&gt; typename std::enable_if&lt; sizeof(decltype(this-&gt;values_[0]+ *_rhs.data())) &gt;=0</td></tr>
<tr class="memdesc:a221a8b6069cc543ebd2d129fb9ee36d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">component-wise vector addition <br /></td></tr>
<tr class="separator:a221a8b6069cc543ebd2d129fb9ee36d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a678916c2fa6531b7cde37aedd023591c"><td class="memTemplParams" colspan="2"><a id="a678916c2fa6531b7cde37aedd023591c"></a>
template&lt;typename OtherScalar &gt; </td></tr>
<tr class="memitem:a678916c2fa6531b7cde37aedd023591c"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a678916c2fa6531b7cde37aedd023591c">operator-</a> (const <a class="el" href="a02001.html">VectorT</a>&lt; OtherScalar, DIM &gt; &amp;_rhs) const -&gt; typename std::enable_if&lt; sizeof(decltype(this-&gt;values_[0] - *_rhs.data())) &gt;=0</td></tr>
<tr class="memdesc:a678916c2fa6531b7cde37aedd023591c"><td class="mdescLeft">&#160;</td><td class="mdescRight">component-wise vector difference <br /></td></tr>
<tr class="separator:a678916c2fa6531b7cde37aedd023591c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9af116a0083e11e78689fa65b235c339"><td class="memItemLeft" align="right" valign="top"><a id="a9af116a0083e11e78689fa65b235c339"></a>
<a class="el" href="a02001.html#a280f7d4c1fb79f41df9254c2e2f654f2">vector_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#a9af116a0083e11e78689fa65b235c339">operator-</a> (void) const</td></tr>
<tr class="memdesc:a9af116a0083e11e78689fa65b235c339"><td class="mdescLeft">&#160;</td><td class="mdescRight">unary minus <br /></td></tr>
<tr class="separator:a9af116a0083e11e78689fa65b235c339"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48cda92c1b0b0612476ef5e09c31d857"><td class="memTemplParams" colspan="2">template&lt;typename OtherScalar &gt; </td></tr>
<tr class="memitem:a48cda92c1b0b0612476ef5e09c31d857"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a48cda92c1b0b0612476ef5e09c31d857">operator%</a> (const <a class="el" href="a02001.html">VectorT</a>&lt; OtherScalar, DIM &gt; &amp;_rhs) const -&gt; typename std::enable_if&lt; DIM==3, <a class="el" href="a02001.html">VectorT</a>&lt; decltype((*this)[0] *_rhs[0] -(*this)[0] *_rhs[0]), DIM &gt;&gt;::type</td></tr>
<tr class="memdesc:a48cda92c1b0b0612476ef5e09c31d857"><td class="mdescLeft">&#160;</td><td class="mdescRight">cross product: only defined for Vec3* as specialization  <a href="#a48cda92c1b0b0612476ef5e09c31d857">More...</a><br /></td></tr>
<tr class="separator:a48cda92c1b0b0612476ef5e09c31d857"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a8b206eb1f2eed1894bf247774d462b"><td class="memTemplParams" colspan="2">template&lt;typename OtherScalar &gt; </td></tr>
<tr class="memitem:a0a8b206eb1f2eed1894bf247774d462b"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a0a8b206eb1f2eed1894bf247774d462b">cross</a> (const <a class="el" href="a02001.html">VectorT</a>&lt; OtherScalar, DIM &gt; &amp;_rhs) const -&gt; decltype(*this % _rhs)</td></tr>
<tr class="memdesc:a0a8b206eb1f2eed1894bf247774d462b"><td class="mdescLeft">&#160;</td><td class="mdescRight">cross product: only defined for Vec3* as specialization  <a href="#a0a8b206eb1f2eed1894bf247774d462b">More...</a><br /></td></tr>
<tr class="separator:a0a8b206eb1f2eed1894bf247774d462b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6482522c90423c5b36dbfce44e2efa66"><td class="memTemplParams" colspan="2">template&lt;typename OtherScalar &gt; </td></tr>
<tr class="memitem:a6482522c90423c5b36dbfce44e2efa66"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a6482522c90423c5b36dbfce44e2efa66">operator|</a> (const <a class="el" href="a02001.html">VectorT</a>&lt; OtherScalar, DIM &gt; &amp;_rhs) const -&gt; decltype(*this-&gt;<a class="el" href="a02001.html#aca8bfed75a3c6a1d7cf6025196c244aa">data</a>() **_rhs.data())</td></tr>
<tr class="memdesc:a6482522c90423c5b36dbfce44e2efa66"><td class="mdescLeft">&#160;</td><td class="mdescRight">compute scalar product  <a href="#a6482522c90423c5b36dbfce44e2efa66">More...</a><br /></td></tr>
<tr class="separator:a6482522c90423c5b36dbfce44e2efa66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaea1266d5702c3cabba4d2285639caf2"><td class="memTemplParams" colspan="2">template&lt;typename OtherScalar &gt; </td></tr>
<tr class="memitem:aaea1266d5702c3cabba4d2285639caf2"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#aaea1266d5702c3cabba4d2285639caf2">dot</a> (const <a class="el" href="a02001.html">VectorT</a>&lt; OtherScalar, DIM &gt; &amp;_rhs) const -&gt; decltype(*this|_rhs)</td></tr>
<tr class="memdesc:aaea1266d5702c3cabba4d2285639caf2"><td class="mdescLeft">&#160;</td><td class="mdescRight">compute scalar product  <a href="#aaea1266d5702c3cabba4d2285639caf2">More...</a><br /></td></tr>
<tr class="separator:aaea1266d5702c3cabba4d2285639caf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7ee568ba3bf831e5d4ee7289a7b0ea5"><td class="memTemplParams" colspan="2"><a id="ac7ee568ba3bf831e5d4ee7289a7b0ea5"></a>
template&lt;typename Functor &gt; </td></tr>
<tr class="memitem:ac7ee568ba3bf831e5d4ee7289a7b0ea5"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a02001.html#a280f7d4c1fb79f41df9254c2e2f654f2">vector_type</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#ac7ee568ba3bf831e5d4ee7289a7b0ea5">apply</a> (const Functor &amp;_func) const</td></tr>
<tr class="memdesc:ac7ee568ba3bf831e5d4ee7289a7b0ea5"><td class="mdescLeft">&#160;</td><td class="mdescRight">component-wise apply function object with Scalar operator()(Scalar). <br /></td></tr>
<tr class="separator:ac7ee568ba3bf831e5d4ee7289a7b0ea5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3112e4920248fee2e21460ce72044e5"><td class="memItemLeft" align="right" valign="top"><a id="ab3112e4920248fee2e21460ce72044e5"></a>
<a class="el" href="a02001.html#a280f7d4c1fb79f41df9254c2e2f654f2">vector_type</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#ab3112e4920248fee2e21460ce72044e5">vectorize</a> (const Scalar &amp;_s)</td></tr>
<tr class="memdesc:ab3112e4920248fee2e21460ce72044e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">store the same value in each component (e.g. to clear all entries) <br /></td></tr>
<tr class="separator:ab3112e4920248fee2e21460ce72044e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e38e18f08a9b11e4d46d26c2b4468f0"><td class="memItemLeft" align="right" valign="top"><a id="a9e38e18f08a9b11e4d46d26c2b4468f0"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#a9e38e18f08a9b11e4d46d26c2b4468f0">operator&lt;</a> (const <a class="el" href="a02001.html#a280f7d4c1fb79f41df9254c2e2f654f2">vector_type</a> &amp;_rhs) const</td></tr>
<tr class="memdesc:a9e38e18f08a9b11e4d46d26c2b4468f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">lexicographical comparison <br /></td></tr>
<tr class="separator:a9e38e18f08a9b11e4d46d26c2b4468f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47ba9ed5ff74bcdc2a31c9c622f57fff"><td class="memItemLeft" align="right" valign="top"><a id="a47ba9ed5ff74bcdc2a31c9c622f57fff"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#a47ba9ed5ff74bcdc2a31c9c622f57fff">swap</a> (<a class="el" href="a02001.html">VectorT</a> &amp;_other) noexcept(noexcept(std::swap(values_, _other.values_)))</td></tr>
<tr class="memdesc:a47ba9ed5ff74bcdc2a31c9c622f57fff"><td class="mdescLeft">&#160;</td><td class="mdescRight">swap with another vector <br /></td></tr>
<tr class="separator:a47ba9ed5ff74bcdc2a31c9c622f57fff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Euclidean norm calculations</div></td></tr>
<tr class="memitem:af67478ef2dced38084ebb2dbe74274c7"><td class="memTemplParams" colspan="2"><a id="af67478ef2dced38084ebb2dbe74274c7"></a>
template&lt;typename S  = Scalar&gt; </td></tr>
<tr class="memitem:af67478ef2dced38084ebb2dbe74274c7"><td class="memTemplItemLeft" align="right" valign="top">decltype(std::declval&lt; S &gt;() *std::declval&lt; S &gt;())&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#af67478ef2dced38084ebb2dbe74274c7">sqrnorm</a> () const</td></tr>
<tr class="memdesc:af67478ef2dced38084ebb2dbe74274c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">compute squared euclidean norm <br /></td></tr>
<tr class="separator:af67478ef2dced38084ebb2dbe74274c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a009f38848409cc43881158487c0ee876"><td class="memTemplParams" colspan="2"><a id="a009f38848409cc43881158487c0ee876"></a>
template&lt;typename S  = Scalar&gt; </td></tr>
<tr class="memitem:a009f38848409cc43881158487c0ee876"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a009f38848409cc43881158487c0ee876">norm</a> () const -&gt; decltype(std::sqrt(std::declval&lt; <a class="el" href="a02001.html">VectorT</a>&lt; S, DIM &gt;&gt;().<a class="el" href="a02001.html#af67478ef2dced38084ebb2dbe74274c7">sqrnorm</a>()))</td></tr>
<tr class="memdesc:a009f38848409cc43881158487c0ee876"><td class="mdescLeft">&#160;</td><td class="mdescRight">compute euclidean norm <br /></td></tr>
<tr class="separator:a009f38848409cc43881158487c0ee876"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec4d71aa3fb941ba06f124629fc31398"><td class="memTemplParams" colspan="2"><a id="aec4d71aa3fb941ba06f124629fc31398"></a>
template&lt;typename S  = Scalar&gt; </td></tr>
<tr class="memitem:aec4d71aa3fb941ba06f124629fc31398"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#aec4d71aa3fb941ba06f124629fc31398">length</a> () const -&gt; decltype(std::declval&lt; <a class="el" href="a02001.html">VectorT</a>&lt; S, DIM &gt;&gt;().<a class="el" href="a02001.html#a009f38848409cc43881158487c0ee876">norm</a>())</td></tr>
<tr class="memdesc:aec4d71aa3fb941ba06f124629fc31398"><td class="mdescLeft">&#160;</td><td class="mdescRight">compute squared euclidean norm <br /></td></tr>
<tr class="separator:aec4d71aa3fb941ba06f124629fc31398"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08b31fcd71fc6d4b5d6bdfc5571c42ce"><td class="memTemplParams" colspan="2"><a id="a08b31fcd71fc6d4b5d6bdfc5571c42ce"></a>
template&lt;typename S  = Scalar&gt; </td></tr>
<tr class="memitem:a08b31fcd71fc6d4b5d6bdfc5571c42ce"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a08b31fcd71fc6d4b5d6bdfc5571c42ce">normalize</a> () -&gt; decltype(*this/=std::declval&lt; <a class="el" href="a02001.html">VectorT</a>&lt; S, DIM &gt;&gt;().<a class="el" href="a02001.html#a009f38848409cc43881158487c0ee876">norm</a>())</td></tr>
<tr class="memdesc:a08b31fcd71fc6d4b5d6bdfc5571c42ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">normalize vector, return normalized vector <br /></td></tr>
<tr class="separator:a08b31fcd71fc6d4b5d6bdfc5571c42ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abaf0f3c4d1088dfdb0f4db272b95f369"><td class="memTemplParams" colspan="2"><a id="abaf0f3c4d1088dfdb0f4db272b95f369"></a>
template&lt;typename S  = Scalar&gt; </td></tr>
<tr class="memitem:abaf0f3c4d1088dfdb0f4db272b95f369"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#abaf0f3c4d1088dfdb0f4db272b95f369">normalized</a> () const -&gt; decltype(*this/std::declval&lt; <a class="el" href="a02001.html">VectorT</a>&lt; S, DIM &gt;&gt;().<a class="el" href="a02001.html#a009f38848409cc43881158487c0ee876">norm</a>())</td></tr>
<tr class="memdesc:abaf0f3c4d1088dfdb0f4db272b95f369"><td class="mdescLeft">&#160;</td><td class="mdescRight">return normalized vector <br /></td></tr>
<tr class="separator:abaf0f3c4d1088dfdb0f4db272b95f369"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f864c527ce38433f8abed382147d5f5"><td class="memTemplParams" colspan="2"><a id="a0f864c527ce38433f8abed382147d5f5"></a>
template&lt;typename S  = Scalar&gt; </td></tr>
<tr class="memitem:a0f864c527ce38433f8abed382147d5f5"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a02001.html#a280f7d4c1fb79f41df9254c2e2f654f2">vector_type</a> &amp;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a0f864c527ce38433f8abed382147d5f5">normalize_cond</a> ()</td></tr>
<tr class="memdesc:a0f864c527ce38433f8abed382147d5f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">compute squared euclidean norm <br /></td></tr>
<tr class="separator:a0f864c527ce38433f8abed382147d5f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Non-Euclidean norm calculations</div></td></tr>
<tr class="memitem:aa8edc601dbba158712fed917b68e0be8"><td class="memItemLeft" align="right" valign="top"><a id="aa8edc601dbba158712fed917b68e0be8"></a>
Scalar&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#aa8edc601dbba158712fed917b68e0be8">l1_norm</a> () const</td></tr>
<tr class="memdesc:aa8edc601dbba158712fed917b68e0be8"><td class="mdescLeft">&#160;</td><td class="mdescRight">compute L1 (Manhattan) norm <br /></td></tr>
<tr class="separator:aa8edc601dbba158712fed917b68e0be8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a888e5c3030603fbae0825438d7c90677"><td class="memItemLeft" align="right" valign="top"><a id="a888e5c3030603fbae0825438d7c90677"></a>
Scalar&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#a888e5c3030603fbae0825438d7c90677">l8_norm</a> () const</td></tr>
<tr class="memdesc:a888e5c3030603fbae0825438d7c90677"><td class="mdescLeft">&#160;</td><td class="mdescRight">compute l8_norm <br /></td></tr>
<tr class="separator:a888e5c3030603fbae0825438d7c90677"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Minimum maximum and mean</div></td></tr>
<tr class="memitem:acebb1e60ba640e369846ea33d004d41f"><td class="memItemLeft" align="right" valign="top"><a id="acebb1e60ba640e369846ea33d004d41f"></a>
Scalar&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#acebb1e60ba640e369846ea33d004d41f">max</a> () const</td></tr>
<tr class="memdesc:acebb1e60ba640e369846ea33d004d41f"><td class="mdescLeft">&#160;</td><td class="mdescRight">return the maximal component <br /></td></tr>
<tr class="separator:acebb1e60ba640e369846ea33d004d41f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48edae61732bb7fb615c3fdc00f19297"><td class="memItemLeft" align="right" valign="top"><a id="a48edae61732bb7fb615c3fdc00f19297"></a>
Scalar&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#a48edae61732bb7fb615c3fdc00f19297">max_abs</a> () const</td></tr>
<tr class="memdesc:a48edae61732bb7fb615c3fdc00f19297"><td class="mdescLeft">&#160;</td><td class="mdescRight">return the maximal absolute component <br /></td></tr>
<tr class="separator:a48edae61732bb7fb615c3fdc00f19297"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6720a4da8089d58941ae5aebdaf3d15"><td class="memItemLeft" align="right" valign="top"><a id="af6720a4da8089d58941ae5aebdaf3d15"></a>
Scalar&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#af6720a4da8089d58941ae5aebdaf3d15">min</a> () const</td></tr>
<tr class="memdesc:af6720a4da8089d58941ae5aebdaf3d15"><td class="mdescLeft">&#160;</td><td class="mdescRight">return the minimal component <br /></td></tr>
<tr class="separator:af6720a4da8089d58941ae5aebdaf3d15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d53dd1a41e9d9ec1f61c0a5a5216109"><td class="memItemLeft" align="right" valign="top"><a id="a8d53dd1a41e9d9ec1f61c0a5a5216109"></a>
Scalar&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#a8d53dd1a41e9d9ec1f61c0a5a5216109">min_abs</a> () const</td></tr>
<tr class="memdesc:a8d53dd1a41e9d9ec1f61c0a5a5216109"><td class="mdescLeft">&#160;</td><td class="mdescRight">return the minimal absolute component <br /></td></tr>
<tr class="separator:a8d53dd1a41e9d9ec1f61c0a5a5216109"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafbe6560982e96e71ecca85575cd5594"><td class="memItemLeft" align="right" valign="top"><a id="aafbe6560982e96e71ecca85575cd5594"></a>
Scalar&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#aafbe6560982e96e71ecca85575cd5594">mean</a> () const</td></tr>
<tr class="memdesc:aafbe6560982e96e71ecca85575cd5594"><td class="mdescLeft">&#160;</td><td class="mdescRight">return arithmetic mean <br /></td></tr>
<tr class="separator:aafbe6560982e96e71ecca85575cd5594"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa539a6f43d8d855bcb28785cd3410cb4"><td class="memItemLeft" align="right" valign="top"><a id="aa539a6f43d8d855bcb28785cd3410cb4"></a>
Scalar&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#aa539a6f43d8d855bcb28785cd3410cb4">mean_abs</a> () const</td></tr>
<tr class="memdesc:aa539a6f43d8d855bcb28785cd3410cb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">return absolute arithmetic mean <br /></td></tr>
<tr class="separator:aa539a6f43d8d855bcb28785cd3410cb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07eff7321b0f082c31913d35edb7805d"><td class="memItemLeft" align="right" valign="top"><a id="a07eff7321b0f082c31913d35edb7805d"></a>
<a class="el" href="a02001.html#a280f7d4c1fb79f41df9254c2e2f654f2">vector_type</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#a07eff7321b0f082c31913d35edb7805d">minimize</a> (const <a class="el" href="a02001.html#a280f7d4c1fb79f41df9254c2e2f654f2">vector_type</a> &amp;_rhs)</td></tr>
<tr class="memdesc:a07eff7321b0f082c31913d35edb7805d"><td class="mdescLeft">&#160;</td><td class="mdescRight">minimize values: same as *this = min(*this, _rhs), but faster <br /></td></tr>
<tr class="separator:a07eff7321b0f082c31913d35edb7805d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f5b507732503b670d45de5eff132e56"><td class="memItemLeft" align="right" valign="top"><a id="a9f5b507732503b670d45de5eff132e56"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#a9f5b507732503b670d45de5eff132e56">minimized</a> (const <a class="el" href="a02001.html#a280f7d4c1fb79f41df9254c2e2f654f2">vector_type</a> &amp;_rhs)</td></tr>
<tr class="memdesc:a9f5b507732503b670d45de5eff132e56"><td class="mdescLeft">&#160;</td><td class="mdescRight">minimize values and signalize coordinate minimization <br /></td></tr>
<tr class="separator:a9f5b507732503b670d45de5eff132e56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a403b3a83b2eac5c602ca117cac953f"><td class="memItemLeft" align="right" valign="top"><a id="a4a403b3a83b2eac5c602ca117cac953f"></a>
<a class="el" href="a02001.html#a280f7d4c1fb79f41df9254c2e2f654f2">vector_type</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#a4a403b3a83b2eac5c602ca117cac953f">maximize</a> (const <a class="el" href="a02001.html#a280f7d4c1fb79f41df9254c2e2f654f2">vector_type</a> &amp;_rhs)</td></tr>
<tr class="memdesc:a4a403b3a83b2eac5c602ca117cac953f"><td class="mdescLeft">&#160;</td><td class="mdescRight">maximize values: same as *this = max(*this, _rhs), but faster <br /></td></tr>
<tr class="separator:a4a403b3a83b2eac5c602ca117cac953f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2b6b05eff7e90a69e73d7577609a65d"><td class="memItemLeft" align="right" valign="top"><a id="ae2b6b05eff7e90a69e73d7577609a65d"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#ae2b6b05eff7e90a69e73d7577609a65d">maximized</a> (const <a class="el" href="a02001.html#a280f7d4c1fb79f41df9254c2e2f654f2">vector_type</a> &amp;_rhs)</td></tr>
<tr class="memdesc:ae2b6b05eff7e90a69e73d7577609a65d"><td class="mdescLeft">&#160;</td><td class="mdescRight">maximize values and signalize coordinate maximization <br /></td></tr>
<tr class="separator:ae2b6b05eff7e90a69e73d7577609a65d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d31efae109ef02cf314585ab6c1ea14"><td class="memItemLeft" align="right" valign="top"><a id="a4d31efae109ef02cf314585ab6c1ea14"></a>
<a class="el" href="a02001.html#a280f7d4c1fb79f41df9254c2e2f654f2">vector_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#a4d31efae109ef02cf314585ab6c1ea14">min</a> (const <a class="el" href="a02001.html#a280f7d4c1fb79f41df9254c2e2f654f2">vector_type</a> &amp;_rhs) const</td></tr>
<tr class="memdesc:a4d31efae109ef02cf314585ab6c1ea14"><td class="mdescLeft">&#160;</td><td class="mdescRight">component-wise min <br /></td></tr>
<tr class="separator:a4d31efae109ef02cf314585ab6c1ea14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7caf2e269d61404ec73ef063c1e32dd0"><td class="memItemLeft" align="right" valign="top"><a id="a7caf2e269d61404ec73ef063c1e32dd0"></a>
<a class="el" href="a02001.html#a280f7d4c1fb79f41df9254c2e2f654f2">vector_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#a7caf2e269d61404ec73ef063c1e32dd0">max</a> (const <a class="el" href="a02001.html#a280f7d4c1fb79f41df9254c2e2f654f2">vector_type</a> &amp;_rhs) const</td></tr>
<tr class="memdesc:a7caf2e269d61404ec73ef063c1e32dd0"><td class="mdescLeft">&#160;</td><td class="mdescRight">component-wise max <br /></td></tr>
<tr class="separator:a7caf2e269d61404ec73ef063c1e32dd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a2af4f7af17614a8e85323586ede688c3"><td class="memItemLeft" align="right" valign="top"><a id="a2af4f7af17614a8e85323586ede688c3"></a>
static constexpr int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#a2af4f7af17614a8e85323586ede688c3">dim</a> ()</td></tr>
<tr class="memdesc:a2af4f7af17614a8e85323586ede688c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns dimension of the vector (deprecated) <br /></td></tr>
<tr class="separator:a2af4f7af17614a8e85323586ede688c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ce76fd78a8c709ad552b851f3ab11a5"><td class="memItemLeft" align="right" valign="top"><a id="a2ce76fd78a8c709ad552b851f3ab11a5"></a>
static constexpr size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#a2ce76fd78a8c709ad552b851f3ab11a5">size</a> ()</td></tr>
<tr class="memdesc:a2ce76fd78a8c709ad552b851f3ab11a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns dimension of the vector <br /></td></tr>
<tr class="separator:a2ce76fd78a8c709ad552b851f3ab11a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a857d116fda1d00c64b608c57ca919037"><td class="memItemLeft" align="right" valign="top"><a id="a857d116fda1d00c64b608c57ca919037"></a>
static <a class="el" href="a02001.html#a280f7d4c1fb79f41df9254c2e2f654f2">vector_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02001.html#a857d116fda1d00c64b608c57ca919037">vectorized</a> (const Scalar &amp;_s)</td></tr>
<tr class="memdesc:a857d116fda1d00c64b608c57ca919037"><td class="mdescLeft">&#160;</td><td class="mdescRight">store the same value in each component <br /></td></tr>
<tr class="separator:a857d116fda1d00c64b608c57ca919037"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:ac8af38cdb80fa961ba599985a7f0ca2f"><td class="memItemLeft" align="right" valign="top"><a id="ac8af38cdb80fa961ba599985a7f0ca2f"></a>
static constexpr const size_t&#160;</td><td class="memItemRight" valign="bottom"><b>size_</b> = DIM</td></tr>
<tr class="separator:ac8af38cdb80fa961ba599985a7f0ca2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="related"></a>
Related Functions</h2></td></tr>
<tr><td class="ititle" colspan="2"><p>(Note that these are not member functions.) </p>
</td></tr>
<tr class="memitem:a11c55f84a338fadb0f528496f163dd5c"><td class="memTemplParams" colspan="2">template&lt;typename Scalar , int DIM&gt; </td></tr>
<tr class="memitem:a11c55f84a338fadb0f528496f163dd5c"><td class="memTemplItemLeft" align="right" valign="top">Scalar&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a11c55f84a338fadb0f528496f163dd5c">dot</a> (const <a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;_v1, const <a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;_v2)</td></tr>
<tr class="separator:a11c55f84a338fadb0f528496f163dd5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6268e9a674ddcdb9123f044bca12db2c"><td class="memTemplParams" colspan="2">template&lt;typename LScalar , typename RScalar , int DIM&gt; </td></tr>
<tr class="memitem:a6268e9a674ddcdb9123f044bca12db2c"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a6268e9a674ddcdb9123f044bca12db2c">cross</a> (const <a class="el" href="a02001.html">VectorT</a>&lt; LScalar, DIM &gt; &amp;_v1, const <a class="el" href="a02001.html">VectorT</a>&lt; RScalar, DIM &gt; &amp;_v2) -&gt; decltype(_v1 % _v2)</td></tr>
<tr class="separator:a6268e9a674ddcdb9123f044bca12db2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a724841f281b97bc48ce50ac7a95b0167"><td class="memTemplParams" colspan="2">template&lt;typename Scalar , int DIM&gt; </td></tr>
<tr class="memitem:a724841f281b97bc48ce50ac7a95b0167"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a724841f281b97bc48ce50ac7a95b0167">swap</a> (<a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;_v1, <a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;_v2) noexcept(noexcept(_v1.swap(_v2)))</td></tr>
<tr class="separator:a724841f281b97bc48ce50ac7a95b0167"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afac3b9b6e93f8f47603f39ee387cb9a9"><td class="memTemplParams" colspan="2">template&lt;typename Scalar , int DIM&gt; </td></tr>
<tr class="memitem:afac3b9b6e93f8f47603f39ee387cb9a9"><td class="memTemplItemLeft" align="right" valign="top">Scalar&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#afac3b9b6e93f8f47603f39ee387cb9a9">norm</a> (const <a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;_v)</td></tr>
<tr class="separator:afac3b9b6e93f8f47603f39ee387cb9a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c9156d5a427cdecdc5282f83c2e346c"><td class="memTemplParams" colspan="2">template&lt;typename Scalar , int DIM&gt; </td></tr>
<tr class="memitem:a5c9156d5a427cdecdc5282f83c2e346c"><td class="memTemplItemLeft" align="right" valign="top">Scalar&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a5c9156d5a427cdecdc5282f83c2e346c">sqrnorm</a> (const <a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;_v)</td></tr>
<tr class="separator:a5c9156d5a427cdecdc5282f83c2e346c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4508f25b7877049c469ea1d3cf3226dd"><td class="memTemplParams" colspan="2">template&lt;typename Scalar , int DIM, typename OtherScalar &gt; </td></tr>
<tr class="memitem:a4508f25b7877049c469ea1d3cf3226dd"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a4508f25b7877049c469ea1d3cf3226dd">vectorize</a> (<a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;_v, OtherScalar const &amp;_val)</td></tr>
<tr class="separator:a4508f25b7877049c469ea1d3cf3226dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a067799f2aa7a99c8740b909ca13713c4"><td class="memTemplParams" colspan="2">template&lt;typename Scalar , int DIM&gt; </td></tr>
<tr class="memitem:a067799f2aa7a99c8740b909ca13713c4"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a067799f2aa7a99c8740b909ca13713c4">normalize</a> (<a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;_v)</td></tr>
<tr class="separator:a067799f2aa7a99c8740b909ca13713c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a720c418e55dad86f8daa9869069d03b2"><td class="memTemplParams" colspan="2">template&lt;typename Scalar , int DIM&gt; </td></tr>
<tr class="memitem:a720c418e55dad86f8daa9869069d03b2"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a720c418e55dad86f8daa9869069d03b2">maximize</a> (<a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;_v1, <a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;_v2)</td></tr>
<tr class="separator:a720c418e55dad86f8daa9869069d03b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a208b49e5c3a85d459366bf967e755a12"><td class="memTemplParams" colspan="2">template&lt;typename Scalar , int DIM&gt; </td></tr>
<tr class="memitem:a208b49e5c3a85d459366bf967e755a12"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a208b49e5c3a85d459366bf967e755a12">minimize</a> (<a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;_v1, <a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;_v2)</td></tr>
<tr class="separator:a208b49e5c3a85d459366bf967e755a12"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a727cecc3377ef4ae6df45404ce3ea04c"><td class="memTemplParams" colspan="2">template&lt;typename Scalar , int DIM&gt; </td></tr>
<tr class="memitem:a727cecc3377ef4ae6df45404ce3ea04c"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a727cecc3377ef4ae6df45404ce3ea04c">max</a> (const <a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;_v1, const <a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;_v2)</td></tr>
<tr class="separator:a727cecc3377ef4ae6df45404ce3ea04c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5583389380686463891a3fb3022397ac"><td class="memTemplParams" colspan="2">template&lt;typename Scalar , int DIM&gt; </td></tr>
<tr class="memitem:a5583389380686463891a3fb3022397ac"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a02001.html#a5583389380686463891a3fb3022397ac">min</a> (const <a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;_v1, const <a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;_v2)</td></tr>
<tr class="separator:a5583389380686463891a3fb3022397ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Component iterators</h2></td></tr>
<tr class="memitem:a32995fef920d6295ef53c576da0ddc86"><td class="memItemLeft" align="right" valign="top"><a id="a32995fef920d6295ef53c576da0ddc86"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>iterator</b> = typename container::iterator</td></tr>
<tr class="separator:a32995fef920d6295ef53c576da0ddc86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc37f7dd5dbd773dcc3894fc5f0e942e"><td class="memItemLeft" align="right" valign="top"><a id="adc37f7dd5dbd773dcc3894fc5f0e942e"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>const_iterator</b> = typename container::const_iterator</td></tr>
<tr class="separator:adc37f7dd5dbd773dcc3894fc5f0e942e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe9716470dfb30a14f7b1913a1d98736"><td class="memItemLeft" align="right" valign="top"><a id="afe9716470dfb30a14f7b1913a1d98736"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>reverse_iterator</b> = typename container::reverse_iterator</td></tr>
<tr class="separator:afe9716470dfb30a14f7b1913a1d98736"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10e75507caacb998e495764061b98c6e"><td class="memItemLeft" align="right" valign="top"><a id="a10e75507caacb998e495764061b98c6e"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>const_reverse_iterator</b> = typename container::const_reverse_iterator</td></tr>
<tr class="separator:a10e75507caacb998e495764061b98c6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52d21aa2159f3db6d7c3449aa4a83483"><td class="memItemLeft" align="right" valign="top"><a id="a52d21aa2159f3db6d7c3449aa4a83483"></a>
iterator&#160;</td><td class="memItemRight" valign="bottom"><b>begin</b> () noexcept</td></tr>
<tr class="separator:a52d21aa2159f3db6d7c3449aa4a83483"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77444321663c05d0bc54398c198a8c11"><td class="memItemLeft" align="right" valign="top"><a id="a77444321663c05d0bc54398c198a8c11"></a>
const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>begin</b> () const noexcept</td></tr>
<tr class="separator:a77444321663c05d0bc54398c198a8c11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b518f83f2f4d90bad409ff8567ce82a"><td class="memItemLeft" align="right" valign="top"><a id="a6b518f83f2f4d90bad409ff8567ce82a"></a>
const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>cbegin</b> () const noexcept</td></tr>
<tr class="separator:a6b518f83f2f4d90bad409ff8567ce82a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4f19003f6dd3f07c993021d2ad08dae"><td class="memItemLeft" align="right" valign="top"><a id="ac4f19003f6dd3f07c993021d2ad08dae"></a>
iterator&#160;</td><td class="memItemRight" valign="bottom"><b>end</b> () noexcept</td></tr>
<tr class="separator:ac4f19003f6dd3f07c993021d2ad08dae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a102ed267d86652fdeda11fcb74aee4b5"><td class="memItemLeft" align="right" valign="top"><a id="a102ed267d86652fdeda11fcb74aee4b5"></a>
const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>end</b> () const noexcept</td></tr>
<tr class="separator:a102ed267d86652fdeda11fcb74aee4b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c8c00fc1ea1b6ab030a5c5ace846162"><td class="memItemLeft" align="right" valign="top"><a id="a8c8c00fc1ea1b6ab030a5c5ace846162"></a>
const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>cend</b> () const noexcept</td></tr>
<tr class="separator:a8c8c00fc1ea1b6ab030a5c5ace846162"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa3936fe8bb37b930cf1dc82e1d7db04"><td class="memItemLeft" align="right" valign="top"><a id="aaa3936fe8bb37b930cf1dc82e1d7db04"></a>
reverse_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>rbegin</b> () noexcept</td></tr>
<tr class="separator:aaa3936fe8bb37b930cf1dc82e1d7db04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81be3b9c1009bf0efe7f23aeba2e499e"><td class="memItemLeft" align="right" valign="top"><a id="a81be3b9c1009bf0efe7f23aeba2e499e"></a>
const_reverse_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>rbegin</b> () const noexcept</td></tr>
<tr class="separator:a81be3b9c1009bf0efe7f23aeba2e499e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a597cb55d6edc53f56502ede9569c1c2c"><td class="memItemLeft" align="right" valign="top"><a id="a597cb55d6edc53f56502ede9569c1c2c"></a>
const_reverse_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>crbegin</b> () const noexcept</td></tr>
<tr class="separator:a597cb55d6edc53f56502ede9569c1c2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b7d86c41d337f4d8cf99ee1cdf9e939"><td class="memItemLeft" align="right" valign="top"><a id="a3b7d86c41d337f4d8cf99ee1cdf9e939"></a>
reverse_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>rend</b> () noexcept</td></tr>
<tr class="separator:a3b7d86c41d337f4d8cf99ee1cdf9e939"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa25c6b7c247e8709036f5df1e1a48e0c"><td class="memItemLeft" align="right" valign="top"><a id="aa25c6b7c247e8709036f5df1e1a48e0c"></a>
const_reverse_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>rend</b> () const noexcept</td></tr>
<tr class="separator:aa25c6b7c247e8709036f5df1e1a48e0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8468bee806bf3e62fd30ef54ba28db9d"><td class="memItemLeft" align="right" valign="top"><a id="a8468bee806bf3e62fd30ef54ba28db9d"></a>
const_reverse_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>crend</b> () const noexcept</td></tr>
<tr class="separator:a8468bee806bf3e62fd30ef54ba28db9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a0a8b206eb1f2eed1894bf247774d462b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a8b206eb1f2eed1894bf247774d462b">&#9670;&nbsp;</a></span>cross()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar, int DIM&gt; </div>
<div class="memtemplate">
template&lt;typename OtherScalar &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">auto <a class="el" href="a02001.html">OpenMesh::VectorT</a>&lt; Scalar, DIM &gt;::cross </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a02001.html">VectorT</a>&lt; OtherScalar, DIM &gt; &amp;&#160;</td>
          <td class="paramname"><em>_rhs</em></td><td>)</td>
          <td> const -&gt; decltype(*this % _rhs)
        </td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>cross product: only defined for Vec3* as specialization </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a01233.html#af37af4054108f1fef53058ff57689763" title="Adapter for osg vector member computing a scalar product. ">OpenMesh::cross</a> and .operator% </dd></dl>

</div>
</div>
<a id="aaea1266d5702c3cabba4d2285639caf2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaea1266d5702c3cabba4d2285639caf2">&#9670;&nbsp;</a></span>dot()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar, int DIM&gt; </div>
<div class="memtemplate">
template&lt;typename OtherScalar &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">auto <a class="el" href="a02001.html">OpenMesh::VectorT</a>&lt; Scalar, DIM &gt;::dot </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a02001.html">VectorT</a>&lt; OtherScalar, DIM &gt; &amp;&#160;</td>
          <td class="paramname"><em>_rhs</em></td><td>)</td>
          <td> const -&gt; decltype(*this | _rhs)
        </td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>compute scalar product </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a01233.html#a351b282a40719408090277956e526735" title="Adapter for osg vector member computing a scalar product. ">OpenMesh::dot</a> and .operator| </dd></dl>

</div>
</div>
<a id="a48cda92c1b0b0612476ef5e09c31d857"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a48cda92c1b0b0612476ef5e09c31d857">&#9670;&nbsp;</a></span>operator%()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar, int DIM&gt; </div>
<div class="memtemplate">
template&lt;typename OtherScalar &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">auto <a class="el" href="a02001.html">OpenMesh::VectorT</a>&lt; Scalar, DIM &gt;::operator% </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a02001.html">VectorT</a>&lt; OtherScalar, DIM &gt; &amp;&#160;</td>
          <td class="paramname"><em>_rhs</em></td><td>)</td>
          <td> const -&gt; typename std::enable_if&lt;DIM == 3,
                <a class="el" href="a02001.html">VectorT</a>&lt;decltype((*this)[0] * _rhs[0] -
                                 (*this)[0] * _rhs[0]), DIM&gt;&gt;::type </td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>cross product: only defined for Vec3* as specialization </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a01233.html#af37af4054108f1fef53058ff57689763" title="Adapter for osg vector member computing a scalar product. ">OpenMesh::cross</a> and .<a class="el" href="a02001.html#a0a8b206eb1f2eed1894bf247774d462b" title="cross product: only defined for Vec3* as specialization ">cross()</a> </dd></dl>

</div>
</div>
<a id="a6482522c90423c5b36dbfce44e2efa66"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6482522c90423c5b36dbfce44e2efa66">&#9670;&nbsp;</a></span>operator|()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar, int DIM&gt; </div>
<div class="memtemplate">
template&lt;typename OtherScalar &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">auto <a class="el" href="a02001.html">OpenMesh::VectorT</a>&lt; Scalar, DIM &gt;::operator| </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a02001.html">VectorT</a>&lt; OtherScalar, DIM &gt; &amp;&#160;</td>
          <td class="paramname"><em>_rhs</em></td><td>)</td>
          <td> const -&gt; decltype(*this-&gt;<a class="el" href="a02001.html#aca8bfed75a3c6a1d7cf6025196c244aa">data</a>() * *_rhs.data()) </td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>compute scalar product </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a01233.html#a351b282a40719408090277956e526735" title="Adapter for osg vector member computing a scalar product. ">OpenMesh::dot</a> and .<a class="el" href="a02001.html#aaea1266d5702c3cabba4d2285639caf2" title="compute scalar product ">dot()</a> </dd></dl>

</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a id="a6268e9a674ddcdb9123f044bca12db2c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6268e9a674ddcdb9123f044bca12db2c">&#9670;&nbsp;</a></span>cross()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename LScalar , typename RScalar , int DIM&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">auto cross </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a02001.html">VectorT</a>&lt; LScalar, DIM &gt; &amp;&#160;</td>
          <td class="paramname"><em>_v1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a02001.html">VectorT</a>&lt; RScalar, DIM &gt; &amp;&#160;</td>
          <td class="paramname"><em>_v2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> -&gt; decltype(_v1 % _v2) </td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>symmetric version of the cross product </p>

</div>
</div>
<a id="a11c55f84a338fadb0f528496f163dd5c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a11c55f84a338fadb0f528496f163dd5c">&#9670;&nbsp;</a></span>dot()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar , int DIM&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Scalar dot </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;&#160;</td>
          <td class="paramname"><em>_v1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;&#160;</td>
          <td class="paramname"><em>_v2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>symmetric version of the dot product </p>

</div>
</div>
<a id="a727cecc3377ef4ae6df45404ce3ea04c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a727cecc3377ef4ae6df45404ce3ea04c">&#9670;&nbsp;</a></span>max()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar , int DIM&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; max </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;&#160;</td>
          <td class="paramname"><em>_v1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;&#160;</td>
          <td class="paramname"><em>_v2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>non-member max </p>

</div>
</div>
<a id="a720c418e55dad86f8daa9869069d03b2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a720c418e55dad86f8daa9869069d03b2">&#9670;&nbsp;</a></span>maximize()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar , int DIM&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp; maximize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;&#160;</td>
          <td class="paramname"><em>_v1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;&#160;</td>
          <td class="paramname"><em>_v2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>non-member maximize </p>

</div>
</div>
<a id="a5583389380686463891a3fb3022397ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5583389380686463891a3fb3022397ac">&#9670;&nbsp;</a></span>min()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar , int DIM&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; min </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;&#160;</td>
          <td class="paramname"><em>_v1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;&#160;</td>
          <td class="paramname"><em>_v2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>non-member min </p>

</div>
</div>
<a id="a208b49e5c3a85d459366bf967e755a12"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a208b49e5c3a85d459366bf967e755a12">&#9670;&nbsp;</a></span>minimize()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar , int DIM&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp; minimize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;&#160;</td>
          <td class="paramname"><em>_v1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;&#160;</td>
          <td class="paramname"><em>_v2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>non-member minimize </p>

</div>
</div>
<a id="afac3b9b6e93f8f47603f39ee387cb9a9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afac3b9b6e93f8f47603f39ee387cb9a9">&#9670;&nbsp;</a></span>norm()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar , int DIM&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Scalar norm </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;&#160;</td>
          <td class="paramname"><em>_v</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>non-member norm </p>

</div>
</div>
<a id="a067799f2aa7a99c8740b909ca13713c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a067799f2aa7a99c8740b909ca13713c4">&#9670;&nbsp;</a></span>normalize()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar , int DIM&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp; normalize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;&#160;</td>
          <td class="paramname"><em>_v</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>non-member normalize </p>

</div>
</div>
<a id="a5c9156d5a427cdecdc5282f83c2e346c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5c9156d5a427cdecdc5282f83c2e346c">&#9670;&nbsp;</a></span>sqrnorm()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar , int DIM&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Scalar sqrnorm </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;&#160;</td>
          <td class="paramname"><em>_v</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>non-member sqrnorm </p>

</div>
</div>
<a id="a724841f281b97bc48ce50ac7a95b0167"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a724841f281b97bc48ce50ac7a95b0167">&#9670;&nbsp;</a></span>swap()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar , int DIM&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void swap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;&#160;</td>
          <td class="paramname"><em>_v1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;&#160;</td>
          <td class="paramname"><em>_v2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>non-member swap </p>

</div>
</div>
<a id="a4508f25b7877049c469ea1d3cf3226dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4508f25b7877049c469ea1d3cf3226dd">&#9670;&nbsp;</a></span>vectorize()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar , int DIM, typename OtherScalar &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp; vectorize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a02001.html">VectorT</a>&lt; Scalar, DIM &gt; &amp;&#160;</td>
          <td class="paramname"><em>_v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">OtherScalar const &amp;&#160;</td>
          <td class="paramname"><em>_val</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>non-member vectorize </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>OpenMesh/Core/Geometry/<a class="el" href="a00164_source.html">Vector11T.hh</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<hr>
<address>
<small>
<a href="http://www.rwth-graphics.de" style="text-decoration:none;">
</a>
Project <b>OpenMesh</b>, 
&copy;&nbsp; Computer Graphics Group, RWTH Aachen.
Documentation generated using 
<a class="el" href="http://www.doxygen.org/index.html">
<b>doxygen</b>
</a>.
</small>
</address>
</body>
</html>
